perm filename SUBRZ.F4[M11,LCS] blob
sn#258335 filedate 1977-01-26 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 SUBROUTINE SUBR
C00005 ENDMK
Cā;
SUBROUTINE SUBR
COMMON /INS/ INST(27),BG(60)
COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
C INUM=INST# IPAR=PARAM#
C BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
C IF IREST IS <0, THAT NOTE WILL BE A REST.
C INST=INST. NAME, BG=INSTS' BEGIN TIMES.
C NOTE #S IN SUBROUTINE: (1-84) C4=37 FS4=43 C5=49 ETC.
C F1=86 F15=100 (NO F16!)
C WILL ACCEPT INST NAMES IN P13 'LIT' LIST.
IF(IPAR.EQ.13)GO TO 13
C DOES NAME CHANGE ON P13 CALL
C CALL SUBROUTINE FROM P12. P3 CAN BE NOTES OR NUMBS.
X=P(3)
IF(PL(3).EQ.1)GO TO 1
X=IFIX(X)
C FOR RAND NOTES TO PRINT OUT FREQS.
X=30.8677*2**(X/12)
C X=FREQ. IN HZ. BASED ON NOTE # IN P3.
PL(3)=1.
C THIS CAUSES FREQ. NUM TO PRINT INSTEAD OF LITERAL CHARACTERS.
1 P(3)=X*2**(P(11)/P(12))
C P12=# OF DIVISIONS OF THE OCTAVE. P11=CHROMATIC STEP IN THAT DIV.
RETURN
13 CALL SHFTCH
P(13)=0
C REPLACE NAME BY A ZERO FOR P13
PL(13)=1.
END
SUBROUTINE SHFTCH
DIMENSION RNAME(5),JNM(5)
COMMON /INS/ INST(27),BG(60)
COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF,DUR(27)
COMMON/VV/LIMIT, V(1) /C/T,NWZZ,IT3,T6,NW,TDUR,A,T2,T4,IL
1,KODE,NPAR,LP,TBG,AC,NPA,BX,IDF,PM,NM,PAR,PX2,T1,RD,VIJ2
EQUIVALENCE (RNAME,JNM)
DATA KK/128/,LL/"377777777777/,JJ/"2000000000/
DATA MM/"774000000000/
J=PM-1
C PM POINTS TO 1ST WORD OF LIT. STRING., PAR= LAST
N=V(J)
C THE WORD COUNT
DO 15 K=1,5
J=J+1
X=V(J)
IF(K.GT.N)X=' '
15 RNAME(K)=X
C N=WDCNT OF INST NAME
NN=0
DO 10 K=5,1,-1
NN=NN .OR. (JNM(K) .AND. MM)
IF (K-1) 20,20,17
17 IF (NN) 12,13,13
12 NN = (( NN .AND. LL)/KK) .OR. JJ
GO TO 10
13 NN = NN / KK
10 CONTINUE
20 INST(INUM)=NN
END